EFSでコマンドラインからファイルの作成ができない場合の対処法
はじめに
かつまたです。以下ブログ内で複数AZに配置したEC2にEFSをマウントし、EFS上でファイル作成を実施したところ、
touch 'efs/testfile': Permission denied
と権限エラーによりファイル作成が行えない状況が発生しました。その際の私の解決法を記述していきたいと思います。
前提条件
・VPC等とEC2作成済み
・EFS作成とSSHからEC2への接続済み
・SSH上でNFSクライアントのインストールとマウントポイント作成済み
・EFSマウントヘルパーを使用し、EFSをマウント済み
マウントポイント確認
まずEFSが正しくマウントされているかを確認します。
df -h | grep efs
このコマンドの出力にEFSのマウントポイントが正しく表示されていれば、マウントを確認できています。
fs-0d5364891d7ce80d2.efs.ap-northeast-1.amazonaws.com:/ 8.0E 0 8.0E 0% /home/ec2-user/efs
マウントポイントが表示されない場合、コンソールの「EFS」→作成したEFSを選択→「アタッチ」の「EFSマウントヘルパーの使用」からコマンドを確認し、マウントを行います。
sudo mount -t efs -o tls fs-0d5364891d7ce80d2:/ efs
ディレクトリの権限の確認
マウントポイントが正常に確認できたが、引き続きファイル作成ができない場合、EFSのマウントポイントの所有者と権限を確認します。
ls -ld /efs
このコマンド実行の際、私の環境ではマウントポイントの所有者がrootでありec2-userには書き込み権限がないことが判明しました。
drwxr-xr-x. 2 root root 6144 Aug 13 05:18 /home/ec2-user/efs
したがって、EFSのマウントポイントの所有者をec2-userに変更します。
sudo chown ec2-user:ec2-user /home/ec2-user/efs
実行後、再度権限の確認を行い、マウントポイントの所有者がec2-userであることを確認します。
ls -ld /home/ec2-user/efs
ファイル作成確認
上記実施後、再びファイル作成を実施し、私の環境ではファイル作成と、別AZのEC2からのEFSファイルの共有を確認することができました。
# ファイル作成
touch /home/ec2-user/efs/testfile
# 確認
ls -l /home/ec2-user/efs
まとめ
私の環境では、マウントポイントが正しく設定されているかの確認と、マウントポイントの所有者と権限の確認をおこない、修正することでファイル作成を実行することができました。
どなたかの助けになれたら嬉しいです!
ご覧いただきありがとうございました。
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。